# -*- coding: utf-8 -*-
# __author__ = 'xxx'
# env: python 3.9.2 kubernetes  22.6.0
# fuction: 通过 utils 工具读取 yaml 进行 pod 部署


from  kubernetes import client,config,utils
import yaml

# 获取连接客户端对象
def getapiclient():
    # 字典形式的 config
    configdirct=""
    config.load_kube_config_from_dict(configdirct)

    return  client


def deploypod():
    """
    通过  ApiClient 对象 来读取 yaml 创建 命名空间级别资源
    :return:
    """
    getclient = getapiclient().ApiClient()

    # 通过 utill 从文件路径 读取指定  yaml
    #utils.create_from_directory(getclient,yaml_dir="/opt/devlopuse/k8sl01/k801/docs/",namespace="sedond")

    # 单个pod 执行操作，client 对象是 ApiClient 如果命名空间不存在，是不会进行创建命名空间的
    # utils.create_from_yaml(getclient,yaml_file="/opt/devlopuse/k8sl01/k801/docs/pod01.yaml",namespace="third")

    # 使用 deployment 进行测试
    #utils.create_from_yaml(getclient,yaml_file="/opt/devlopuse/k8sl01/k801/docs/deployuse.yaml",namespace="third")

    # 批量执行执行 指定路径下的 资源 yaml 文件
    #utils.create_from_directory(getclient,yaml_dir="/opt/devlopuse/k8sl01/k801/docs/",namespace="third")

    # 通过 字典形式 创建资源对象
    yamlfile = open("/opt/devlopuse/k8sl01/k801/docs/pod01.yaml")
    yamltodic = yaml.load(yamlfile, Loader=yaml.FullLoader)
    print(utils.create_from_dict(getclient,data=yamltodic,namespace="third"))

deploypod()



